
let varAbbMap = {
  pid: {
    PTD: '探海',
    IEP: '智甲',
    PTA: '追影',
    IDS: 'IDS',
    TOS: '防火墙',
    HSM: '主机管控',
    ASIAINFO: '亚信',
    WAF: '铱迅',
    DPTECH: '迪普',
    // 民航设备
    UPDATE: '人工上传',
    antiy_scan: '监测引擎',
    anheng_scan: '监测引擎'
  },
  type: {
    threat: '攻击',
    attack: '攻击',
    content: '内容',
    vul: '脆弱性',
    all: '全部',
    audit: '异常',
    visible: '运行状态'
  },
  // 日志 "更多"对话框title
  dialogTitle: {
    sysname: '系统名称选择',
    affiliation: '所属机构选择',
    stype: '日志类型选择'
  },
  levelStr: {
    '0': '正常',
    '1': '低危',
    '2': '中危',
    '3': '高危',
    '4': '严重'
  },
  levelNumber: {
    '正常': 0,
    '低危': 1,
    '中危': 2,
    '高危': 3,
    '严重': 4
  },
  source: {
    'WF': '攻击事件',
    'WAF': '攻击事件',
    'IDS': '攻击事件',
    'IPS': '攻击事件',
    'MALWARE': '攻击事件',
    'C2': '攻击事件',
    'OS_VUL': '攻击事件',
    'WEB_VUL': '攻击事件',
    'ILLEGAL-ACCESSS': '攻击事件',
    'ILLEGAL-USE': '攻击事件',
    'SYS-STATUS': '运行状态',
    'DEV-STATUS': '运行状态',
    'VUL': '按需协查',
    'DEV-AUDIT': '按需协查',
    'LOAD_ANA': '按需协查',
    'MALCODE_TRANSTER': '攻击事件'
  },
  etype: {
    maliciouscode: '恶意代码',
    c2: 'C&C',
    'net-intrusion': '网络入侵',
    loophole_detect: '漏洞检测',
    unfix: '未修复漏洞',
    illegal_access: '违规接入',
    illegal_outer_access: '违规外联',
    record: '其他',
    '<default>': '其他'
  },
  // stype: {
  // //   loophole_detect: '漏洞检测',
  // //   virus_detect: '病毒检测',
  // //   dev_detect: '移动设备接入检测',
  // //   dev_use_detect: '移动设备使用检测',
  // //   proc_protect: '进程防御日志',
  // //   active_protect: '系统主动防御',
  // //   border_monitor: '边界监控',
  // //   network_monitor: '进程网络监控',
  // //   visible_dns: 'DNS可用性',
  // //   visible_http: 'HTTP可用性',
  // //   visible_ping: 'PING可用性',
  // //   threat_trojan: '挂马',
  // //   threat_phish: '钓鱼',
  // //   darklink: '暗链',
  // //   sensitive: '敏感词',
  // //   mis: '篡改',
  // //   weak_pwd: '弱口令',
  // //   web_vul: 'WEB漏洞',
  // //   os_vul: '系统漏洞',
  // //   mobile_flow: '移动流量',
  // //   mobile_endpoint: '移动端',
  // //   fw_rule_status: '不允许的策略防火墙规则和防火墙状态配置',
  // //   attack_define_error: '入侵防御',
  // //   attack_define_norm: '入侵防御',
  // //   script_upload: '脚本上传',
  // //   script_trojan: '脚本木马',
  // //   req_type: '请求类型',
  // //   buffer_overflow: '缓冲区溢出',
  // //   xss_attack: 'XSS攻击',
  // //   script_execution: '脚本执行',
  // //   scan: '扫描行为',
  // //   info_leakage: '信息泄露',
  // //   sql: 'SQL注入',
  // //   // 迪普
  // //   ips_alert: '告警IPS日志',
  // //   ips_general: '一般IPS日志；高流行度防病毒日志',
  // //   ips_serious: '严重IPS日志；中流行度防病毒日志',
  // //   ips_deadly: '致命IPS日志；低流行度防病毒日志'
  // // },
  // // risk_behavior: {
  // //   // 威胁
  // //   maliciouscode: '恶意代码',
  // //   'net-intrusion': '网络入侵',
  // //   c2: '命令与控制',
  // //   threat_trojan: '挂马',
  // //   threat_phish: '钓鱼',
  // //   darklink: '暗链',
  // //   // 脆弱性
  // //   os_vul: '系统漏洞',
  // //   web_vul: 'WEB漏洞',
  // //   weak_pwd: '弱口令',
  // //   // 可用性
  // //   visible_http: 'HTTP可用性',
  // //   visible_ping: 'PING可用性',
  // //   visible_dns: 'DNS可用性',
  // //   // 内容
  // //   sensitive: '敏感词',
  // //   mis: '篡改',
  // //   // 异常
  // //   illegal_access: '违规接入',
  // //   illegal_outer_access: '违规外联'
  // },
  'file_type.file_type': {
    'BinExecute.*': '可执行程序',
    'Script.*': '脚本',
    'Document.*': '文档',
    'Archive.*': '压缩包',
    'Picture.*': '图片',
    'Media.*': '多媒体',
    'SoftData.*': '软件数据',
    'Other.*': '其他',
    '<default>': '其他'
  }
}

const translateChinese = (key, value) => {
  if (key in varAbbMap) {
    if (varAbbMap[key][value] != null) {
      value = varAbbMap[key][value]
    }
  }
  return value
}

/**
 * @description 返回对应key下的说明信息
 * @param {String} key
 * @param {String} value
 * @returns {String | Array}
 */
export const translateVar = (key, value) => {
  let _type = Object.prototype.toString.call(value)
  if (_type === '[object Array]') {
    let arr = []
    for (let el of value) {
      arr.push(translateChinese(key, el))
    }
    return arr
  } else if (_type === '[object String]') {
    return translateChinese(key, value)
  } else {
    return translateChinese(key, String(value))
  }
}
